/*
Copyright © 2025 NAME HERE <EMAIL ADDRESS>
*/
package global

import (
	"github.com/spf13/cobra"
	"nodemessage.com/ruov-cli/rlog"
	"nodemessage.com/ruov-cli/utils"
)

// SetCmd represents the set command
var SetCmd = &cobra.Command{
	Use:   "set [section] [key] [value]",
	Short: "设置配置项的值",
	Long: `修改配置文件中指定配置项的值。
示例:
  ruov global set global debug true   # 设置全局调试配置
  ruov global set database host 127.0.0.1  # 设置数据库主机配置`,
	Args: cobra.ExactArgs(3),
	Run: func(cmd *cobra.Command, args []string) {
		setValue(args[0], args[1], args[2])
	},
}

// setValue 设置指定配置项的值
func setValue(section, key, value string) {
	// 使用工具函数设置配置值
	err := utils.SetConfigValue(section, key, value)
	if err != nil {
		rlog.Logger.Error("设置配置失败: %v", err)
		rlog.Logger.Error("设置配置失败: %v", err)
		return
	}

	rlog.Logger.Info("已设置配置项: [%s] %s = %s", section, key, value)
}
